/*
 * @(#)ObjectWatcherInfo.java $version 2010. 8. 11
 *
 * Copyright 2007-2010 NHN Corp. All rights Reserved. 
 * NHN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.nhncorp.usf.core.config;

/**
 * {@link ObjectWatcher} 생성에 필요한 정보를 제공하는 클래스
 *
 * @author Web Platform Development Team
 */
public class ObjectWatcherInfo {
    /**
     * Operation ObjectWatcherInfo ObjectWatcherInfo.
     */
    private static ObjectWatcherInfo objectWatcherInfo;

    /**
     * Gets the single instance of ObjectWatcherInfo.
     *
     * @return single instance of ObjectWatcherInfo
     */
    public static ObjectWatcherInfo getInstance() {
        if (objectWatcherInfo == null) {
            objectWatcherInfo = new ObjectWatcherInfo();
        }

        return objectWatcherInfo;
    }

    /**
     * {@link ObjectWatcher} 의 실행주기
     */
    private long period;

    /**
     * {@link ObjectWatcher} 의 실행전 지연시간
     */
    private long delay;

    /**
     * {@link ObjectWatcher} 의 활성화 상태
     */
    private boolean use = false;

    /**
     * {@link ObjectWatcher} 의 실행 주기를 반환한다.
     *
     * @return long the execution period time
     */
    public long getPeriod() {
        return period;
    }

    /**
     * {@link ObjectWatcher} 의 실행 주기를 설정한다.
     *
     * @param period the execution period time
     */
    public void setPeriod(long period) {
        this.period = period;
    }

    /**
     * {@link ObjectWatcher} 의 실행 전 지연 시간을 반환한다.
     *
     * @return long the execution delay time
     */
    public long getDelay() {
        return delay;
    }

    /**
     * {@link ObjectWatcher} 의 실행 전 지연 시간을 설정한다.
     *
     * @param delay the execution delay time
     */
    public void setDelay(long delay) {
        this.delay = delay;
    }

    /**
     * {@link ObjectWatcher} 의 실행 상태를 반환한다.
     *
     * @return boolean the default value false
     */
    public boolean isUse() {
        return use;
    }

    /**
     * {@link ObjectWatcher} 의 실행 상태를 설정한다.
     *
     * @param use the boolean type
     */
    public void setUse(boolean use) {
        this.use = use;
    }
}
